$(function () {

    baseUrl = "/sys"
    // 自动调整底部状态栏位置
    function height_adjustment() 　　{ 　　
        var content_top = $('#Content').offset().top;
        var content_height = $('#Content').height();
        var footer_top = $('.footer').offset().top;
        if(content_top + content_height >= footer_top) {
            $('.footer').css('margin-top', content_top + content_height)
        } else {
            $('.footer').css('margin-top', window.innerHeight - content_top - content_height - 85)
        }
    }
    /*
     * 界面内模块切换
    */
    function gotoUploadConfiguration() {
        // 切换成绩管理页
        $('.condition').hide();
        $('.achievement').hide();
        $('.uploadConfiguration').show();
        $('.configuration').hide();
        // 修改菜单导航
        $("#PathID2").text("> 成绩管理");
        //修改右上角配置按钮名称为查询
        $("#configure_btn").text("查询");
        height_adjustment();
    }
    function disableUploadConfiguration(flag) {
        // 禁用、启用成绩管理页按钮
        if (flag == "ban") {
        // 禁用
            $(".wait").attr("style", "display: block");
            $(".input_file").attr("disabled", true);
            $(".upload_file").attr("disabled", true);
            $(".upload_file").attr("style", "background: silver");
            $("#delete_db_btn").attr("disabled", true);
            $("#delete_db_btn").attr("style", "background: silver");
            $(".login_btn").attr("disabled", true).css("pointer-events","none");
            $(".configure_btn").attr("disabled", true).css("pointer-events","none");
            $(".gotoConfiguration").attr("disabled", true).css("pointer-events","none");
        } else {
            // 启用
            $(".wait").attr("style", "display: none");
            $(".input_file").attr("disabled", false);
            $(".upload_file").attr("disabled", false);
            $(".upload_file").attr("style", "background: #157cea");
            $("#delete_db_btn").attr("disabled", false);
            $("#delete_db_btn").attr("style", "background: #b6d7a8");
            // $(".login_btn").attr("disabled", false).css("pointer-events","auto");
            $('.configure_btn').attr("disabled", false).css("pointer-events","auto");
            $(".gotoConfiguration").attr("disabled", false).css("pointer-events","auto");
        }
    }
    function gotoConfiguration() {
        // 切换系统配置页
        $('.condition').hide();
        $('.achievement').hide();
        $('.uploadConfiguration').hide();
        $('.configuration').show();
        // 修改菜单导航
        $("#PathID2").text("> 系统配置");
        //修改右上角配置按钮名称为查询
        $("#configure_btn").text("查询");
        height_adjustment();
    }
    function gotoCondition() {
        // 切换成绩查询页
        $('.condition').show();
        $('.achievement').hide();
        $('.uploadConfiguration').hide();
        $('.configuration').hide();
        // 修改菜单导航
        $("#PathID2").text("> 成绩查询");
        //修改右上角配置按钮名称为查询
        $("#configure_btn").text("配置");
        height_adjustment();
    }
    function gotoAchievement(userName, candidateNumber, score) {
        // 切换成绩结果页
        $(".condition").attr("style", "display: none")  // 查询页隐藏
        $(".achievement").attr("style", "display: block")  //结果页展示
        $("#arrt1").attr("class", "tdoutbox")  //结果页展示
        // 修改菜单导航
        $("#PathID2").text("> 成绩详情");
        // 赋值页面展示
        document.getElementById('userName').innerHTML=userName;
        document.getElementById('candidateNumber').innerHTML=candidateNumber;
        document.getElementById('score').innerHTML=score;
        height_adjustment();
    }
    /*

      * 登陆相关功能
    */
    // 点击右上角登录按钮，打开登录框
    $('.login_btn').click(function () {
        $('.login_form_con').show();
    })

    // 点击右上角【配置/查询】按钮
    $('#configure_btn').click(function () {
        var btn_name = $('#configure_btn').text();
        if (btn_name.indexOf("查询") == -1)  {
            gotoUploadConfiguration();
        } else {
            gotoCondition();
        }
        height_adjustment();
    })

    // 点击关闭按钮关闭登录框或者注册框
    $('.shutoff').click(function () {
        $(this).closest('form').hide();
    })

    // 隐藏错误
    $(".login_form #mobile").focus(function () {
        $("#login-mobile-err").hide();
    });
    $(".login_form #password").focus(function () {
        $("#login-password-err").hide();
    });

    $(".register_form #mobile").focus(function () {
        $("#register-mobile-err").hide();
    });
    $(".register_form #imagecode").focus(function () {
        $("#register-image-code-err").hide();
    });
    $(".register_form #smscode").focus(function () {
        $("#register-sms-code-err").hide();
    });
    $(".register_form #password").focus(function () {
        $("#register-password-err").hide();
    });


    // 点击输入框，提示文字上移
    $('.form_group').on('click', function () {
        $(this).children('input').focus()
    })

    // 输入框失去焦点，如果输入框为空，则提示文字下移
    $('.form_group input').on('focusin', function () {
        $(this).siblings('.input_tip').animate({'top': -5, 'font-size': 12}, 'fast')
        $(this).parent().addClass('hotline');
    })

    // 打开注册框
    $('.register_btn').click(function () {
        $('.register_form_con').show();
        generateImageCode()
    })


    // 登录框和注册框切换
    $('.to_register').click(function () {
        $('.login_form_con').hide();
        $('.register_form_con').show();
        generateImageCode()
    })

    // 登录框和注册框切换
    $('.to_login').click(function () {
        $('.login_form_con').show();
        $('.register_form_con').hide();
    })

    // 根据地址栏的hash值来显示用户中心对应的菜单
    var sHash = window.location.hash;
    if (sHash != '') {
        var sId = sHash.substring(1);
        var oNow = $('.' + sId);
        var iNowIndex = oNow.index();
        $('.option_list li').eq(iNowIndex).addClass('active').siblings().removeClass('active');
        oNow.show().siblings().hide();
    }

    // 用户中心菜单切换
    var $li = $('.option_list li');
    var $frame = $('#main_frame');

    $li.click(function () {
        if ($(this).index() == 5) {
            $('#main_frame').css({'height': 900});
        } else {
            $('#main_frame').css({'height': 660});
        }
        $(this).addClass('active').siblings().removeClass('active');
        $(this).find('a')[0].click()
    })

    serv.verifys = function (t) {

        if(!t){

            t = $("#img_verifys");

        }
        var verifyCodeId = Date.now()

        $(t).hide().attr("src", serv.requestUrl + "/passport/image_code?imageCodeId=" + verifyCodeId).fadeIn();
        $("#verifyCodeId").attr("value", verifyCodeId).fadeIn();

    };

    // 点击查询按钮查询成绩#select_submitButton
    $("#select_submitButton").click(function (e) {
        //  e.preventDefault()
        var userName = $("#xm").val()  //考生名
        var candidateNumber = $("#sfz").val()  //考号
        var imageCode = $("#verify").val()   //验证码
        var imageCodeId = $("#verifyCodeId").val()  //验证图片id
        if (!userName||!candidateNumber||!imageCode) {
            alert("请先输入 姓名、考号、验证码 ")
            return;
        }

        // 发起查-询请求
        var params = {
            "userName": userName,
            "candidateNumber": candidateNumber,
            "imageCodeId": imageCodeId,
            "imageCode": imageCode
        }

        $.ajax({
            url: baseUrl + "/score/queryScore",
            method: "post",
            data: JSON.stringify(params),
            headers: {
            // "X-CSRFToken": getCookie("csrf_token")
            },
            xhrFields: {
                withCredentials: true //允许跨域带Cookie
            },
            contentType: "application/json",
            success: function (resp) {
                if (resp.code == "0") {
                    // 前往结果页，并展示成绩
                    gotoAchievement(userName, candidateNumber, resp.data.score)
                } else {
                    alert(resp.msg)
                    serv.verifys()
                    document.getElementById('verify').value="";
                }
            }
        })
    })

    // 上传excel
    $("#upload").submit(function (e) {
        // 发起上传请求
        e.preventDefault()
        var params = new FormData();
        var file = $(".input_file").get(0).files[0];
        if (typeof(file) == "undefined"){
            alert("请先选择上传文件！");
            return
        }
        disableUploadConfiguration("ban");

        params.append("file", file);
        $.ajax({
            url: baseUrl + "/file/upload",
            method: "POST",
            data: params,
            headers: {
//                "X-CSRFToken": getCookie("csrf_token")
            },
            xhrFields: {
                    withCredentials: true //允许跨域带Cookie
            },
            processData : false,
            contentType : false,
            success: function (resp) {
                if (resp.code == "0" || resp.code == "4103") {
                    disableUploadConfiguration("reset");
                    alert("上传成功！");
                    $(".upload_file").attr("disable", true);
                    document.getElementById("upload").reset();  //清除input
                } else {
                    if (resp.data) {
                        disableUploadConfiguration("reset");
                        $(".upload_file").attr("disable", true);
                        var content = "存在异常！\n" + resp.msg + ':\n' + resp.data.join("\n")
                        alert(content);
                    } else {
                        disableUploadConfiguration("reset");
                        alert(resp.msg);
                        $(".upload_file").attr("disable", true);
                    }
                }
                disableUploadConfiguration("reset");
            }
        })
    })

    // 清除历史数据 清库
    $("#delete_db_btn").click(function (e) {
        if (!window.confirm("是否确认清除所有上传数据？")) {
            return
        }
        disableUploadConfiguration("ban");
        // 发起清除历史数据请求
//        e.preventDefault()

        //params.append("id", createdBy);
        $.ajax({
            url: baseUrl + "/score/deleteScore",
            method: "DELETE",
            headers: {
                //"X-CSRFToken": getCookie("csrf_token")
            },
            xhrFields: {
                withCredentials: true //允许跨域带Cookie
            },
            success: function (resp) {
                if (resp.code == "0") {
                    disableUploadConfiguration("reset");
                    alert("清除历史数据成功！")
                } else {
                    disableUploadConfiguration("reset");
                    alert(resp.msg);
                }
                disableUploadConfiguration("reset");
            }
        })
    })

    // 管理员用户登录
    $(".login_form_con").submit(function (e) {
        e.preventDefault()
        var mobile = $(".login_form #mobile").val()
        var password = $(".login_form #password").val()

        if (!mobile) {
            $("#login-mobile-err").show();
            return;
        }

        if (!password) {
            $("#login-password-err").show();
            return;
        }

        // 发起登录请求
        var params = {
            "userName": mobile,
            "password": password,
        }

        $.ajax({
            url: baseUrl + "/passport/login",
            method: "post",
            data: JSON.stringify(params),
            headers: {
            // "X-CSRFToken": getCookie("csrf_token")
            },
            contentType: "application/json",
            success: function (resp) {
                if (resp.code == "0") {
                    // 登陆成功
                    $(".login_form_con").attr("style", "display:none")
                    $(".login_btn").text(resp.data.userName)
                    $(".login_btn").attr("disabled", true)
                    $(".login_btn").css("pointer-events","none")
                    $('.configure_btn').show();
                    //切换到配置页面界面
                    gotoUploadConfiguration()
                } else {
                    $("#login-password-err").html(resp.msg)
                    $("#login-password-err").show()
                }
            }
        })
    })


    // TODO 注册按钮点击
    $(".register_form_con").submit(function (e) {
        // 阻止默认提交操作
        e.preventDefault()

        // 取到用户输入的内容
        var mobile = $("#register_mobile").val()
        var smscode = $("#smscode").val()
        var password = $("#register_password").val()

        if (!mobile) {
            $("#register-mobile-err").show();
            return;
        }
        if (!smscode) {
            $("#register-sms-code-err").show();
            return;
        }
        if (!password) {
            $("#register-password-err").html("请填写密码!");
            $("#register-password-err").show();
            return;
        }

        if (password.length < 6) {
            $("#register-password-err").html("密码长度不能少于6位");
            $("#register-password-err").show();
            return;
        }

        // 发起注册请求
        var params = {
            "mobile": mobile,
            "smscode": smscode,
            "password": password,
        }

        $.ajax({
            url: "/passport/register",
            type: "post",
            data: JSON.stringify(params),
            headers: {
                "X-CSRFToken": getCookie("csrf_token")
            },
            contentType: "application/json",
            success: function (resp) {
                if (resp.code == "0") {
                    // 刷新当前界面
                    location.reload()
                } else {
                    $("#register-password-err").html(resp.msg)
                    $("#register-password-err").show()
                }
            }
        })
    })
})

var imageCodeId = ""


function generateImageCode() {
    imageCodeId = generateUUID()
    var url = "/passport/image_code?imageCodeId=" + imageCodeId
    $(".get_pic_code").attr("src", url)
}

// 发送短信验证码
function sendSMSCode() {
    // 校验参数，保证输入框有数据填写
    $(".get_code").removeAttr("onclick");
    var mobile = $("#register_mobile").val();
    if (!mobile) {
        $("#register-mobile-err").html("请填写正确的手机号！");
        $("#register-mobile-err").show();
        $(".get_code").attr("onclick", "sendSMSCode();");
        return;
    }
    var imageCode = $("#imagecode").val();
    if (!imageCode) {
        $("#register-image-code-err").html("请填写验证码！");
        $("#register-image-code-err").show();
        $(".get_code").attr("onclick", "sendSMSCode();");
        return;
    }

    // TODO 发送短信验证码
    var params = {
        "mobile": mobile,
        "imageCode": imageCode,
        "imageCodeId": imageCodeId
    }

    $.ajax({
        // 请求地址
        url: "/passport/sms_code",
        // 请求方式
        method: "POST",
        // 请求内容
        data: JSON.stringify(params),
        headers: {
            "X-CSRFToken": getCookie("csrf_token")
        },
        // 请求内容的数据类型
        contentType: "application/json",
        // 响应数据的格式
        dataType: "json",
        success: function (resp) {
            if (resp.code === "0") {
                // 倒计时60秒，60秒后允许用户再次点击发送短信验证码的按钮
                var num = 60;
                // 设置一个计时器
                var t = setInterval(function () {
                    if (num == 1) {
                        // 如果计时器到最后, 清除计时器对象
                        clearInterval(t);
                        // 将点击获取验证码的按钮展示的文本回复成原始文本
                        $(".get_code").html("获取验证码");
                        // 将点击按钮的onclick事件函数恢复回去
                        $(".get_code").attr("onclick", "sendSMSCode();");
                    } else {
                        num -= 1;
                        // 展示倒计时信息
                        $(".get_code").html(num + "秒");
                    }
                }, 1000)
            } else {
                // 表示后端出现了错误，可以将错误信息展示到前端页面中
                $("#register-sms-code-err").html(resp.msg);
                $("#register-sms-code-err").show();
                // 将点击按钮的onclick事件函数恢复回去
                $(".get_code").attr("onclick", "sendSMSCode();");
                // 如果错误码是4004，代表验证码错误，重新生成验证码
                if (resp.code === "4004") {
                    generateImageCode()
                }
            }
        }
    })
}

function logout() {
    $.get("/passport/logout", function (response) {
        location.reload()
    })
}

// 调用该函数模拟点击左侧按钮
function fnChangeMenu(n) {
    var $li = $('.option_list li');
    if (n >= 0) {
        $li.eq(n).addClass('active').siblings().removeClass('active');
        // 执行 a 标签的点击事件
        $li.eq(n).find('a')[0].click()
    }
}

// 一般页面的iframe的高度是660
// 新闻发布页面iframe的高度是900
function fnSetIframeHeight(num) {
    var $frame = $('#main_frame');
    $frame.css({'height': num});
}

function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}

function generateUUID() {
    var d = new Date().getTime();
    if (window.performance && typeof window.performance.now === "function") {
        d += performance.now(); //use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = (d + Math.random() * 16) % 16 | 0;
        d = Math.floor(d / 16);
        return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    return uuid;
}
